package handler;

import beans.NewsLabel;
import beans.Page;
import beans.UpdatePage;
import com.alibaba.druid.sql.visitor.functions.Isnull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import service.INewsLabelService;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/news")
public class NewLabelHandler {
    @Autowired
    private INewsLabelService service;
// 显示栏目页面，可以传入参数，继续查询，还可以执行删除，查询某一页的数据
    @RequestMapping("/queryNewLabel")
    public String queryNewLabel(@RequestParam(defaultValue = "1") Integer pagenum, Integer parentId, Integer deleId,Model model){
        // 删除操作
        if (deleId!=null){
            service.dele(deleId);
        }
        System.out.println("parentId = "+parentId);
        // 对当前页内的属性进行赋值
        Page<NewsLabel> page=service.findCurrentPage(pagenum,parentId);
        // 对获取的page数据输出到控制台进行查看
        for (NewsLabel ns:page.getDatas()
             ) {
            System.out.println(ns);
        }
// 向前台传输数据
        model.addAttribute("page",page);
        model.addAttribute("parentId",parentId);
        // 通过视图解析器进行跳转到newsLabelManage.jsp页面
        return "news/newsLabelManage";
    }
// 通过传过来的Id进行查询栏目，获取值传到jsp页面，跳转到jsp页面
    @RequestMapping("/selectNew")
    public String selectNew(int id,Model model){
        UpdatePage updatePage=service.selectById(id);
        model.addAttribute("updatePage",updatePage);
        System.out.println(updatePage);
        return "news/updataNews";
    }
// 对数据库数据进行更改，在跳转到queryNewLabel方法展示结果
    @RequestMapping("/update")
    public String update(NewsLabel newsLabel,Model model){
        System.out.println(newsLabel);
        service.updateById(newsLabel);
        return this.queryNewLabel(2,null,null,model);
    }
// 查询父栏目穿参数到前台页面
    @RequestMapping("/selectByParents")
    public String selectByParents(Model model){
        List<NewsLabel> parents= service.selectByParents();
        model.addAttribute("parents",parents);
        return "news/addNews";
    }
// 获取前台页面的参数，对数据库进行添加
    @RequestMapping("/add")
    public String add(NewsLabel newsLabel,Model model){
        System.out.println(newsLabel);
        service.add(newsLabel);
        return this.queryNewLabel(1,null,null,model);
    }

}
